package de.nak.terminumfrageapp.service;

import java.util.ArrayList;
import java.util.List;
import de.nak.terminumfrageapp.model.Benutzer;
import de.nak.terminumfrageapp.model.Rueckmeldung;
import de.nak.terminumfrageapp.model.Termin;
import de.nak.terminumfrageapp.model.Umfrage;

/**
 * 
 * @author Tim Danker
 * @description Interface fuer RueckmeldungService
 * 
 */
public interface IRueckmeldungService {

	public void erstelleRueckmeldung(Termin termin, Benutzer benutzer,
			Umfrage umfrage);

	public ArrayList<Benutzer> listeVonBenutzernMitZusage(Umfrage umfrage,
			Benutzer benutzer);

	public Rueckmeldung[][] arrayVonRueckmeldungen(
			List<Benutzer> benutzerListe, List<Termin> terminListe,
			Benutzer eigenerBenutzer);

	public Rueckmeldung[][] arrayVonEigenenRueckmeldungen(Benutzer benutzer,
			List<Termin> terminListe);

	

	public boolean hatBenutzerRueckmeldung(Benutzer benutzer, Termin termin);

	public List<Umfrage> ladeUmfragenMitRueckmeldung(Benutzer benutzer);

	public List<Umfrage> ladeUmfragenOhneRueckmeldung(Benutzer benutzer,
			List<Umfrage> alleUmfragen);

	public void speichere(Rueckmeldung rueckmeldung);

	public ArrayList<Long> ladeAnzahlZusagenProTermin(List<Termin> terminListe);

	public void loescheAlleRueckmeldungen(Long ausgewaehlteTerminId);

}
